package com.fh_22;

import com.bean.Stu;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/*
入门案例
 */
public class A02入门案例 {
/*
1.实现步骤
……1）。导入mybatis的jar包
……2）。创建学生表和学生类
……3）。在src下创建一个映射文件
……4）。在src创建核心配置文件
……5）。测试
…………1）。加载核心配置文件
…………2）。获取SqlSession工厂对象
…………3）。通过SqlSession对象获取SqlSession对象
…………4）。执行sql语句
…………5）。处理数据
…………6）。释放资源
 */
    public static void main(String[] args) throws IOException {
//        查询全部();
        添加();

    }

    private static void 添加() throws IOException {
        //        加载核心配置文件
        InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
//        获取SqlSession工厂对象
        SqlSessionFactory fy = new SqlSessionFactoryBuilder().build(is);
//        通过SqlSession对象获取SqlSession对象
//        执行sql语句   管理事务  接口代理。
        SqlSession sq = fy.openSession();
//        执行sql语句
//        第二个参数:要添加到数据库中的参数
        Stu stu = new Stu(0, "大波浪", 18);
        sq.insert("StuMapper.addStu",stu);
//        提交事务
        sq.commit();
//        释放资源
        sq.close();
        is.close();
    }

    private static void 查询全部() throws IOException {
        //        加载核心配置文件
        InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
//        获取SqlSession工厂对象
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//        通过SqlSession对象获取SqlSession对象
        SqlSession sq = factory.openSession();
//        执行sql语句
        List<Object> list = sq.selectList("StuMapper.selectAll");
        System.out.print(list);
//        释放资源
        sq.close();
        is.close();
    }
}
